#pragma region Copyright
/// <copyright>
/// Copyright (c) 2007 Ilia Shramko.
/// Released under the terms of the GNU General Public License.
/// </copyright>
#pragma endregion

#pragma once

class FilterGraphClassFactory :
	public CComObjectRootEx<CComMultiThreadModel>,
	public IClassFactory
{
private:
	CComPtr<IClassFactory> _filterGraphClassFactory;

protected:
	BEGIN_COM_MAP(FilterGraphClassFactory)
		COM_INTERFACE_ENTRY(IClassFactory)
	END_COM_MAP()

public:
    FilterGraphClassFactory();
	virtual ~FilterGraphClassFactory();

	HRESULT Initialize(IClassFactory* filterGraphClassFactory);

    // IClassFactory
    STDMETHOD(CreateInstance)(LPUNKNOWN pUnkOuter, REFIID riid, void** pv);
    STDMETHOD(LockServer)(BOOL fLock);
};

